function y = func_J_m2_1(q, m, CONSTS)

    check_asympt = false;

    k0 = CONSTS.k0;
    a = CONSTS.a;
    p = func_p_from_q(q, CONSTS);
    q2 = func_q2_from_p(p, CONSTS);
    alfa_2 = func_alfa_2(p, CONSTS);

    y = (besselj(m+1, k0*a*q2)./((k0*a*q2).*besselj(m, k0*a*q2))) + ...
           ((alfa_2.*m)./((k0*a*q2).^2));
       
    if(check_asympt) % function has the big occilations relatively asymptotic constant
        eps = CONSTS.eps;
        eta = CONSTS.eta;
        g = CONSTS.g;
        y_s = ((eta-eps)/(eta*g))*(m/((k0*a)^2)); % const
        figure; plot(q, real(y), 'b.-', q, real(y_s), 'r-'); title('Re(J_{m}^{"(2)})');
        figure; plot(q, imag(y), 'b.-', q, imag(y_s), 'r-'); title('Im(J_{m}^{"(2)})');
    end
end
